[INFO] cloning repository https://github.com/chenpu17/cc-gw2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chenpu17/cc-gw2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchenpu17%2Fcc-gw2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchenpu17%2Fcc-gw2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8de3f93da5322ea3fc94c3cf49ba34ba4cf77a7e
[INFO] testing chenpu17/cc-gw2/8de3f93da5322ea3fc94c3cf49ba34ba4cf77a7e against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchenpu17%2Fcc-gw2" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/chenpu17/cc-gw2
[INFO] finished tweaking git repo https://github.com/chenpu17/cc-gw2
[INFO] tweaked toml for git repo https://github.com/chenpu17/cc-gw2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/chenpu17/cc-gw2 on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/chenpu17/cc-gw2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded derive_arbitrary v1.4.2
[INFO] [stderr]   Downloaded scrypt v0.11.0
[INFO] [stderr]   Downloaded zopfli v0.8.3
[INFO] [stderr]   Downloaded zip v4.6.1
[INFO] [stderr]   Downloaded zlib-rs v0.6.3
[INFO] [stderr]   Downloaded sysinfo v0.37.2
[INFO] [stderr]   Downloaded axum-server v0.7.3
[INFO] [stderr]   Downloaded fs-err v3.3.0
[INFO] [stderr]   Downloaded ntapi v0.4.3
[INFO] [stderr]   Downloaded arc-swap v1.8.2
[INFO] [stderr]   Downloaded rusqlite v0.33.0
[INFO] [stderr]   Downloaded objc2-io-kit v0.3.2
[INFO] [stderr]   Downloaded brotli-decompressor v4.0.3
[INFO] [stderr]   Downloaded brotli v7.0.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.31.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f3392dafd25f8dc82ee7000d0461f7a1821730235a593105b019f304710d844e
[INFO] running `Command { std: "docker" "start" "-a" "f3392dafd25f8dc82ee7000d0461f7a1821730235a593105b019f304710d844e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f3392dafd25f8dc82ee7000d0461f7a1821730235a593105b019f304710d844e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f3392dafd25f8dc82ee7000d0461f7a1821730235a593105b019f304710d844e", kill_on_drop: false }`
[INFO] [stdout] f3392dafd25f8dc82ee7000d0461f7a1821730235a593105b019f304710d844e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 926733e661b04b156fba7ba94bebd2f011c4e807f52de1a1e678fdf6066e6e5e
[INFO] running `Command { std: "docker" "start" "-a" "926733e661b04b156fba7ba94bebd2f011c4e807f52de1a1e678fdf6066e6e5e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling fs-err v3.3.0
[INFO] [stderr]    Compiling brotli-decompressor v4.0.3
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling arc-swap v1.8.2
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling brotli v7.0.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling sysinfo v0.37.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling salsa20 v0.10.2
[INFO] [stderr]    Compiling scrypt v0.11.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.31.0
[INFO] [stderr]    Compiling aws-lc-sys v0.38.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zip v4.6.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling rusqlite v0.33.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling aws-lc-rs v1.16.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum-server v0.7.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling cc-gw-core v0.8.18 (/opt/rustwide/workdir/crates/cc-gw-core)
[INFO] [stderr]    Compiling cc-gw-server v0.8.18 (/opt/rustwide/workdir/crates/cc-gw-server)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s
[INFO] running `Command { std: "docker" "inspect" "926733e661b04b156fba7ba94bebd2f011c4e807f52de1a1e678fdf6066e6e5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "926733e661b04b156fba7ba94bebd2f011c4e807f52de1a1e678fdf6066e6e5e", kill_on_drop: false }`
[INFO] [stdout] 926733e661b04b156fba7ba94bebd2f011c4e807f52de1a1e678fdf6066e6e5e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9d00f817770310930d718965f339322d0da37bafaf67e1b49b3312cb1170f5a1
[INFO] running `Command { std: "docker" "start" "-a" "9d00f817770310930d718965f339322d0da37bafaf67e1b49b3312cb1170f5a1", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc-gw-core v0.8.18 (/opt/rustwide/workdir/crates/cc-gw-core)
[INFO] [stderr]    Compiling cc-gw-server v0.8.18 (/opt/rustwide/workdir/crates/cc-gw-server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 17.04s
[INFO] running `Command { std: "docker" "inspect" "9d00f817770310930d718965f339322d0da37bafaf67e1b49b3312cb1170f5a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d00f817770310930d718965f339322d0da37bafaf67e1b49b3312cb1170f5a1", kill_on_drop: false }`
[INFO] [stdout] 9d00f817770310930d718965f339322d0da37bafaf67e1b49b3312cb1170f5a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d5bddc83696a7f7f9124e66812949d1037e3e54c952179a16a038c86b1b3c6e0
[INFO] running `Command { std: "docker" "start" "-a" "d5bddc83696a7f7f9124e66812949d1037e3e54c952179a16a038c86b1b3c6e0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cc_gw_core-2268e42aac7acaa7)
[INFO] [stdout] 
[INFO] [stdout] running 79 tests
[INFO] [stdout] test config::tests::apply_protocol_migration_preserves_legacy_port_and_host ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_chat_preserves_metadata_and_tool_choice ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_response_builds_responses_input_items ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_response_preserves_reasoning_and_multimodal_parts ... ok
[INFO] [stdout] test convert::tests::anthropic_response_to_openai_chat_emits_cache_read_as_cached_tokens ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_chat_maps_stop_sequences_to_stop ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_chat_preserves_reasoning_and_multimodal_parts ... ok
[INFO] [stdout] test convert::tests::anthropic_response_to_openai_response_emits_cache_read_as_cached_tokens ... ok
[INFO] [stdout] test convert::tests::anthropic_response_to_openai_response_emits_function_call_items ... ok
[INFO] [stdout] test convert::tests::anthropic_response_to_openai_chat_preserves_reasoning_content ... ok
[INFO] [stdout] test convert::tests::openai_chat_request_to_anthropic_maps_stop_and_max_completion_tokens ... ok
[INFO] [stdout] test convert::tests::openai_chat_request_to_anthropic_maps_tool_choice_and_parallel_flags ... ok
[INFO] [stdout] test convert::tests::openai_chat_request_to_anthropic_preserves_metadata ... ok
[INFO] [stdout] test config::tests::save_config_omits_legacy_request_and_response_logging_flags ... ok
[INFO] [stdout] test convert::tests::openai_responses_request_to_anthropic_maps_function_call_output ... ok
[INFO] [stdout] test convert::tests::openai_chat_response_to_anthropic_preserves_reasoning_content ... ok
[INFO] [stdout] test convert::tests::openai_responses_request_to_anthropic_maps_stop_and_max_completion_tokens ... ok
[INFO] [stdout] test convert::tests::openai_chat_response_to_anthropic_preserves_multimodal_content ... ok
[INFO] [stdout] test convert::tests::openai_chat_response_to_anthropic_preserves_refusal_text ... ok
[INFO] [stdout] test convert::tests::openai_responses_request_to_anthropic_maps_top_level_reasoning_item ... ok
[INFO] [stdout] test convert::tests::openai_chat_request_to_anthropic_preserves_reasoning_and_multimodal_parts ... ok
[INFO] [stdout] test convert::tests::openai_responses_request_to_anthropic_maps_top_level_function_call ... ok
[INFO] [stdout] test convert::tests::openai_responses_response_to_anthropic_maps_top_level_function_call_when_completed ... ok
[INFO] [stdout] test convert::tests::openai_responses_response_to_anthropic_preserves_multimodal_content ... ok
[INFO] [stdout] test convert::tests::openai_chat_response_to_anthropic_rebuilds_anthropic_input_tokens_from_total ... ok
[INFO] [stdout] test convert::tests::openai_responses_request_to_anthropic_preserves_reasoning_and_multimodal_parts ... ok
[INFO] [stdout] test convert::tests::openai_responses_response_to_anthropic_preserves_refusal_blocks ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_chat_maps_required_tool_choice_without_downgrading ... ok
[INFO] [stdout] test convert::tests::openai_responses_response_to_anthropic_rebuilds_anthropic_input_tokens_from_total ... ok
[INFO] [stdout] test provider::tests::anthropic_endpoint_uses_existing_version_prefix_without_adding_v1 ... ok
[INFO] [stdout] test provider::tests::anthropic_headers_preserve_claude_client_identity_headers ... ok
[INFO] [stdout] test convert::tests::openai_responses_response_to_anthropic_parses_function_call_arguments ... ok
[INFO] [stdout] test convert::tests::anthropic_response_to_openai_response_preserves_reasoning_content ... ok
[INFO] [stdout] test config::tests::save_config_atomically_replaces_previous_longer_contents ... ok
[INFO] [stdout] test provider::tests::apply_query_string_appends_to_plain_url ... ok
[INFO] [stdout] test provider::tests::apply_query_string_appends_to_existing_query ... ok
[INFO] [stdout] test provider::tests::apply_query_string_ignores_empty_values ... ok
[INFO] [stdout] test provider::tests::openai_endpoint_uses_existing_version_prefix_without_adding_v1 ... ok
[INFO] [stdout] test provider::tests::openai_endpoint_preserves_full_chat_completions_path ... ok
[INFO] [stdout] test provider::tests::openai_headers_preserve_client_identity_headers_without_leaking_gateway_auth ... ok
[INFO] [stdout] test provider::tests::provider_prefers_openai_protocol_without_anthropic_hints ... ok
[INFO] [stdout] test provider::tests::provider_prefers_openai_responses_protocol_for_explicit_signals ... ok
[INFO] [stdout] test routing::tests::custom_openai_endpoint_falls_back_to_openai_defaults ... ok
[INFO] [stdout] test routing::tests::custom_endpoint_uses_its_own_routing_before_global_defaults ... ok
[INFO] [stdout] test stream::tests::anthropic_observer_tracks_ttft_and_usage ... ok
[INFO] [stdout] test stream::tests::anthropic_observer_treats_tool_and_thinking_events_as_first_output ... ok
[INFO] [stdout] test provider::tests::provider_prefers_anthropic_protocol_for_explicit_anthropic_signals ... ok
[INFO] [stdout] test stream::tests::anthropic_to_openai_chat_stream_preserves_thinking_as_reasoning_content ... ok
[INFO] [stdout] test stream::tests::anthropic_to_openai_responses_emits_richer_stream_events ... ok
[INFO] [stdout] test stream::tests::anthropic_to_openai_responses_tool_use_emits_requires_action_status ... ok
[INFO] [stdout] test stream::tests::materialize_anthropic_stream_returns_offline_message ... ok
[INFO] [stdout] test stream::tests::anthropic_to_openai_responses_preserves_reasoning_content_on_completion ... ok
[INFO] [stdout] test stream::tests::materialize_openai_responses_stream_returns_offline_response ... ok
[INFO] [stdout] test stream::tests::openai_chat_observer_treats_tool_calls_as_first_output ... ok
[INFO] [stdout] test stream::tests::openai_responses_observer_normalizes_anthropic_cache_breakdown ... ok
[INFO] [stdout] test stream::tests::openai_responses_observer_tracks_output_text_and_usage ... ok
[INFO] [stdout] test stream::tests::openai_chat_to_anthropic_stream_preserves_reasoning_content ... ok
[INFO] [stdout] test stream::tests::openai_responses_observer_treats_function_call_events_as_first_output ... ok
[INFO] [stdout] test stream::tests::openai_responses_to_anthropic_reconciles_reasoning_output_items ... ok
[INFO] [stdout] test stream::tests::openai_responses_transformer_emits_anthropic_events ... ok
[INFO] [stdout] test stream::tests::openai_responses_transformer_maps_incomplete_to_max_tokens ... ok
[INFO] [stdout] test stream::tests::openai_responses_transformer_maps_requires_action_and_tool_output ... ok
[INFO] [stdout] test stream::tests::openai_responses_transformer_treats_completed_function_call_as_tool_use ... ok
[INFO] [stdout] test stream::tests::unsupported_stream_transformer_returns_error ... ok
[INFO] [stdout] test stream::tests::sse_observer_accepts_crlf_event_boundaries ... ok
[INFO] [stdout] test convert::tests::anthropic_request_to_openai_chat_sets_tool_result_name_from_tool_use_id ... ok
[INFO] [stdout] test routing::tests::wildcard_routes_keep_configured_order_when_specificity_ties ... ok
[INFO] [stdout] test api_keys::tests::list_api_keys_accepts_legacy_text_timestamps ... ok
[INFO] [stdout] test convert::tests::openai_chat_response_to_anthropic_preserves_cache_breakdown ... ok
[INFO] [stdout] test profiler::tests::append_profiler_turn_persists_first_turn_and_updates_session_end ... ok
[INFO] [stdout] test profiler::tests::clear_profiler_sessions_removes_records_before_reusing_session_id ... ok
[INFO] [stdout] test profiler::tests::append_profiler_turn_orders_by_request_start_and_keeps_session_bounds ... ok
[INFO] [stdout] test observability::tests::log_detail_falls_back_to_legacy_prompt_and_response_payloads ... ok
[INFO] [stdout] test observability::tests::log_status_filters_exclude_unfinished_records ... ok
[INFO] [stdout] test observability::tests::metrics_overview_today_uses_local_request_logs ... ok
[INFO] [stdout] test observability::tests::metrics_overview_today_respects_local_day_boundary ... ok
[INFO] [stdout] test observability::tests::recent_client_activity_counts_distinct_ips_and_sessions ... ok
[INFO] [stdout] test observability::tests::recent_throughput_metrics_counts_recent_requests_and_output_tokens ... ok
[INFO] [stdout] test storage::tests::initialize_database_migrates_legacy_schema ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cc_gw_server-cd00289619ea0b53)
[INFO] [stdout] 
[INFO] [stdout] running 61 tests
[INFO] [stdout] test proxy_routes::tests::concurrency_allows_when_under_limit ... ok
[INFO] [stdout] test proxy_routes::tests::extract_usage_stats_normalizes_anthropic_input_tokens_with_cache_breakdown ... ok
[INFO] [stdout] test proxy_routes::tests::extract_usage_stats_keeps_cached_tokens_as_cache_read_only ... ok
[INFO] [stdout] test proxy_routes::tests::extract_usage_stats_reads_nested_response_usage ... ok
[INFO] [stdout] test proxy_routes::tests::concurrency_allows_when_limit_is_zero ... ok
[INFO] [stdout] test proxy_routes::tests::concurrency_check_increments_atomically ... ok
[INFO] [stdout] test proxy_routes::tests::concurrency_releases_slot_on_drop ... ok
[INFO] [stdout] test proxy_routes::tests::concurrency_allows_when_no_limit ... ok
[INFO] [stdout] test proxy_routes::tests::concurrency_rejects_when_at_limit ... ok
[INFO] [stdout] test tests::anthropic_messages_validation_rejects_unknown_block_types_in_claude_code_mode ... ok
[INFO] [stdout] test tests::anthropic_to_openai_does_not_retry_when_compatibility_disabled ... ok
[INFO] [stdout] test tests::anthropic_to_openai_maps_required_tool_choice_and_stop_sequences ... ok
[INFO] [stdout] test tests::anthropic_to_openai_stream_handshake_error_is_converted_to_anthropic_shape ... ok
[INFO] [stdout] test tests::anthropic_to_openai_routes_thinking_requests_to_explicit_responses_provider ... ok
[INFO] [stdout] test tests::anthropic_messages_can_target_anthropic_compatible_custom_provider ... ok
[INFO] [stdout] test tests::anthropic_to_openai_non_stream_error_is_converted_to_anthropic_shape ... ok
[INFO] [stdout] test tests::anthropic_messages_forward_query_and_identity_headers_to_anthropic_provider ... ok
[INFO] [stdout] test tests::anthropic_to_custom_provider_strips_tooling_and_metadata ... ok
[INFO] [stdout] test tests::anthropic_to_openai_retry_drops_metadata_and_tool_choice ... ok
[INFO] [stdout] test tests::anthropic_to_openai_non_json_error_uses_anthropic_error_fallback ... ok
[INFO] [stdout] test tests::anthropic_endpoint_accepts_bearer_auth_for_gateway_api_keys ... ok
[INFO] [stdout] test tests::api_version_check_reports_update_state_from_registry ... ok
[INFO] [stdout] test tests::extract_header_session_id_supports_cc_gw_standard_header ... ok
[INFO] [stdout] test tests::extract_profiler_session_id_ignores_user_fallback_and_uses_url_safe_id ... ok
[INFO] [stdout] test tests::extract_request_session_id_supports_provider_conversation_fields ... ok
[INFO] [stdout] test tests::extract_request_session_id_uses_stable_headers_before_user_fallbacks ... ok
[INFO] [stdout] test tests::extract_session_id_prefers_session_fields_over_user_fields ... ok
[INFO] [stdout] test tests::anthropic_messages_validation_accepts_string_or_block_content_in_claude_code_mode ... ok
[INFO] [stdout] test tests::infer_client_kind_prefers_known_cli_markers ... ok
[INFO] [stdout] test tests::api_key_admin_reveal_and_stats_work_end_to_end ... ok
[INFO] [stdout] test tests::disabled_custom_endpoint_is_not_exposed ... ok
[INFO] [stdout] test tests::api_status_responses_disable_http_caching ... ok
[INFO] [stdout] test tests::legacy_public_routes_remain_available ... ok
[INFO] [stdout] test tests::cross_protocol_non_stream_responses_preserve_observability_headers ... ok
[INFO] [stdout] test tests::direct_proxy_responses_do_not_forward_upstream_set_cookie ... ok
[INFO] [stdout] test tests::custom_endpoint_and_api_key_restrictions_work_end_to_end ... ok
[INFO] [stdout] test tests::configured_body_limit_rejects_requests_over_boundary ... ok
[INFO] [stdout] test tests::cross_protocol_logs_capture_four_payload_blocks_on_one_record ... ok
[INFO] [stdout] test tests::cross_protocol_stream_responses_preserve_observability_headers ... ok
[INFO] [stdout] test tests::anthropic_to_openai_retry_summarizes_tool_roundtrip_and_normalizes_tokens ... ok
[INFO] [stdout] test tests::logs_export_archive_includes_four_payload_fields ... ok
[INFO] [stdout] test tests::openai_responses_from_anthropic_provider_emits_function_call_items ... ok
[INFO] [stdout] test tests::openai_responses_same_protocol_does_not_retry_or_strip_metadata ... ok
[INFO] [stdout] test tests::openai_responses_stream_from_anthropic_provider_emits_richer_events ... ok
[INFO] [stdout] test tests::profiler_status_start_stop ... ok
[INFO] [stdout] test tests::root_falls_back_to_ui_redirect_when_landing_html_is_missing ... ok
[INFO] [stdout] test tests::dropped_streams_finalize_logs_as_interrupted ... ok
[INFO] [stdout] test tests::provider_test_matches_key_node_behaviors ... ok
[INFO] [stdout] test tests::profiler_sessions_list_and_clear ... ok
[INFO] [stdout] test tests::openai_responses_to_custom_provider_preserves_same_protocol_tooling ... ok
[INFO] [stdout] test tests::root_seo_files_are_served ... ok
[INFO] [stdout] test tests::openai_to_anthropic_error_is_converted_to_openai_shape ... ok
[INFO] [stdout] test tests::ui_html_is_not_cached_but_hashed_assets_are_cacheable ... ok
[INFO] [stdout] test tests::openai_root_routes_match_openai_prefixed_routes ... ok
[INFO] [stdout] test tests::custom_proxy_routes_accept_payloads_larger_than_two_mib ... ok
[INFO] [stdout] test tests::profiler_records_real_requests_without_user_fallback_or_disabled_response_payloads ... ok
[INFO] [stdout] test tests::streaming_logs_store_materialized_response_instead_of_raw_sse_chunks ... ok
[INFO] [stdout] test tests::standard_proxy_routes_accept_payloads_larger_than_two_mib ... ok
[INFO] [stdout] test tests::api_key_concurrency_limit_returns_429_and_records_event ... ok
[INFO] [stdout] test tests::api_status_reports_live_and_recent_client_activity ... ok
[INFO] [stdout] test tests::web_auth_requires_session_for_api_routes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 61 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.74s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cc_gw_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d5bddc83696a7f7f9124e66812949d1037e3e54c952179a16a038c86b1b3c6e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5bddc83696a7f7f9124e66812949d1037e3e54c952179a16a038c86b1b3c6e0", kill_on_drop: false }`
[INFO] [stdout] d5bddc83696a7f7f9124e66812949d1037e3e54c952179a16a038c86b1b3c6e0
